Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FE][FEAT] #134 : Layout Component 구현 #137

Merged
merged 11 commits into from
Nov 12, 2024

Conversation

leedongyull
Copy link
Collaborator

@leedongyull leedongyull commented Nov 11, 2024


📝 PR 개요

  • header, footer로 이루어진 layout component 구현
  • 확장성과 보편성을 위해 props로 설정
  • tailwind boxshadow 추가

✅ 체크리스트 (Checklist)

  • header 구현
  • footer 구현

🔄 관련 이슈 (Linked Issues)

import React, { ReactNode } from 'react';
import { Header } from './Header';
import { Footer } from './Footer';

interface ILayoutProps {
  children: ReactNode;
  headerTitle?: string;
  footerTitle?: string;
  isHeaderTransparent?: boolean;
  footerActive?: boolean;
  headerButton?: ReactNode;
  footerOnClick?: () => void;
}

export const Layout: React.FC<ILayoutProps> = ({
  children,
  headerTitle,
  footerTitle,
  isHeaderTransparent = false,
  footerActive = true,
  headerButton,
  footerOnClick,
}) => (
  <div className="flex flex-col items-center w-full h-full bg-gray-400">
    {/* Header */}
    <Header title={headerTitle} isTransparency={isHeaderTransparent} buttonElement={headerButton} />

    {/* Main content */}
    <main>{children}</main>

    {/* Footer */}
    <Footer title={footerTitle} onClick={footerOnClick} active={footerActive} />
  </div>
);

기본 Layout의 틀은 위와 같고 현재 피그마의 모든 header, footer 대응 가능

하지만, Router에서 사용 시 페이지 마다 달라지는 props들이 있기에

      <Route
        path="/add-channel"
        element={
          <Layout headerTitle="경로 방 추가" footerTitle="추가하기">
            <AddChannel />
          </Layout>
        }
      />

      <Route
        path="/add-channel/:user"
        element={
          <Layout headerTitle="사용자 경로 설정" footerTitle="다음 단계" isHeaderTransparent>
            <UserRoute />
          </Layout>
        }
      />

이러한 형식으로 코드가 길어지고 각각 모두 설정해줘야 합니다.

이러한 방식이 맞는건지 모르겠습니다! 리뷰 부탁 드립니당

📷 스크린샷 및 동영상 (선택 사항)

  • 우선 공통 버튼 컴포넌트가 없어 좌측 상단 토스트바, 뒤로가기 버튼은 없는 상태

  • 상단 제목 X
    noTitle

  • 상단 제목 O 하단 버튼 active 상태
    하단 active false

  • header 투명 가능
    header 투명 간으


설명: UI 변경 사항이 포함된 경우, 변경된 화면을 시각적으로 보여주기 위해 스크린샷이나 동영상을 첨부하면 도움이 됩니다. 리뷰어는 화면 변경 사항을 바로 확인할 수 있어 코드 리뷰가 더 효과적입니다.


🔄 피드백 반영 및 수정

  • props 전달 방식 수정
  • React.FC 제거
  • ReactNode 대신 ReactElement를 이용해 구체화

@github-actions github-actions bot added the 확인 요청 리뷰어에게 리뷰 요청 PR 날린 상태 (PR 머지 전) label Nov 11, 2024
happyhyep
happyhyep previously approved these changes Nov 11, 2024
@juwon5272
Copy link
Collaborator

export const Div = ({prop1, prop2, ...}) => {
...
}

export const Div = (props: IProps) => {
const {prop1, prop2} = props;
...
}

export const Div = (props: IProps) => {
props.prop;
props.prop2;
...
}

중에 2,3번만 사용하기로 했던걸로 기억하는데, 1번으로 되어 있어 수정이 필요하지 않을까 싶습니다

@juwon5272 juwon5272 added 수정 요청 특정 이유로 PR을 approve 할 수 없어 반려한 상태 (리뷰어 2명 중 PR 반려 한 사람이 상태 변경) and removed 확인 요청 리뷰어에게 리뷰 요청 PR 날린 상태 (PR 머지 전) labels Nov 11, 2024
@github-actions github-actions bot added the 확인 요청 리뷰어에게 리뷰 요청 PR 날린 상태 (PR 머지 전) label Nov 11, 2024
@github-actions github-actions bot requested a review from effozen November 11, 2024 09:05
juwon5272
juwon5272 previously approved these changes Nov 11, 2024
@effozen effozen removed the 확인 요청 리뷰어에게 리뷰 요청 PR 날린 상태 (PR 머지 전) label Nov 11, 2024
@leedongyull leedongyull added 수정 중 리뷰어에게 PR을 반려당했을 때, 작업자가 "수정 요청"을 확인한 후 수정에 들어간 경우 (이후 수정 완료되면 "확인 요청"으로 상태 변경) 확인 요청 리뷰어에게 리뷰 요청 PR 날린 상태 (PR 머지 전) and removed 수정 요청 특정 이유로 PR을 approve 할 수 없어 반려한 상태 (리뷰어 2명 중 PR 반려 한 사람이 상태 변경) 수정 중 리뷰어에게 PR을 반려당했을 때, 작업자가 "수정 요청"을 확인한 후 수정에 들어간 경우 (이후 수정 완료되면 "확인 요청"으로 상태 변경) labels Nov 11, 2024
@github-actions github-actions bot requested a review from happyhyep November 11, 2024 09:28
effozen
effozen previously approved these changes Nov 11, 2024
frontend/src/component/Layout/Layout.tsx Outdated Show resolved Hide resolved
@effozen
Copy link
Collaborator

effozen commented Nov 11, 2024

수정사항에 대해서 확인했습니다! 고생하셨습니다!

happyhyep
happyhyep previously approved these changes Nov 12, 2024
frontend/src/component/Layout/Header.tsx Outdated Show resolved Hide resolved
@leedongyull leedongyull merged commit b53d7db into frontend Nov 12, 2024
3 of 7 checks passed
@leedongyull leedongyull deleted the feature/fe/#134-makeLayoutComponent branch November 17, 2024 03:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
확인 요청 리뷰어에게 리뷰 요청 PR 날린 상태 (PR 머지 전)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants